package com.hsu.yupao.config;

import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.socket.server.standard.ServerEndpointExporter;

/**
 * WebSocket配置类。
 * 该配置类通过@Bean注解方法提供了一个ServerEndpointExporter，
 * 这是一个Spring提供的用于扫描@ServerEndpoint注解并注册它们的Bean，
 * 它将自动注册使用了@ServerEndpoint注解的WebSocket endpoint。
 * @ClassName: WebSocketConfig
 * @author Hsu琛君珩
 * @date 2024-06-03
 * @apiNote
 * @Version: v1.0
 */
@Configuration
public class WebSocketConfig {

    /**
     * 配置一个Bean，用于自动注册带有@ServerEndpoint注解的WebSocket端点。
     * ServerEndpointExporter是由Spring提供的一个类，它支持WebSocket在Spring环境下的运行。
     * 只有当使用了Spring Boot的内嵌容器（如Tomcat）时，这个Bean才是必需的。
     * 它将利用Spring的扫描功能，自动检测所有声明了@ServerEndpoint注解的类，并注册它们。
     * @return ServerEndpointExporter Bean，它将处理WebSocket端点的注册。
     */
    @Bean
    public ServerEndpointExporter serverEndpointExporter() {
        return new ServerEndpointExporter();
    }

}
